"""
MVC（Model-View-Controller）是一种常用的软件架构设计模式。该模式将应用程序分为三个主要组件：

    模型（Model）：负责处理数据和业务逻辑，提供数据和状态的接口。

    视图（View）：提供用户界面，将模型的数据显示给用户。

    控制器（Controller）：接收用户输入，控制模型和视图之间的交互。

MVC模式的优点在于：

    降低了代码的耦合度，不同组件之间的修改不会影响到其他组件。

    提高了代码的可维护性和可扩展性，方便添加新的功能。

    分离了应用程序的逻辑和界面，使得代码更加清晰和易于理解。

    以下是一个简单的Python程序，演示了MVC设计模式的应用。

注释和文档：

    在代码中，每个类都有注释，解释了其作用和方法。

    每个方法都有docstring，描述了方法的输入和输出。

    每个模块都有文档字符串，描述了模块的作用和使用方法。

测试用例：

    编写了一个简单的测试用例test_controller()，演示了控制器层如何使用模型和视图层，并对不同类型的数据进行了测试。

这个程序简单地实现了一个数字列表的添加和显示功能，通过MVC模式，将程序分为三个组件：模型、视图和控制器，分别处理数据、界面和用户输入。程序的结构清晰，易于扩展和维护。
    """


# 模型层
class Model:
    def __init__(self):
        self.data = []

    def add_data(self, new_data):
        self.data.append(new_data)

    def get_data(self):
        return self.data


# 视图层
class View:
    def show_data(self, data):
        print("Data:", data)

    def show_error(self, message):
        print("Error:", message)


# 控制器层
class Controller:
    def __init__(self):
        self.model = Model()
        self.view = View()

    def add_data(self, new_data):
        if isinstance(new_data, int):
            self.model.add_data(new_data)
            self.view.show_data(self.model.get_data())
        else:
            self.view.show_error("Invalid data type")


# 测试用例
def test_controller():
    c = Controller()
    c.add_data(1)
    c.add_data(2)
    c.add_data("3")


if __name__ == '__main__':
    test_controller()
